iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
AI Engineering

別再只是讓 AI 幫你改英文:30 天打造個人化 AI 英文溝通教練系列 第 5

Day 5|從需求到 Product Spec:開始寫程式前,我需要先寫清楚什麼?

  • 分享至 

  • xImage
  •  

Day 4 在研究 chunking 時,我遇到一個有點尷尬的問題。

原本的需求其實寫得很簡單:

把英文自動切成適合練習的 chunks。

乍看之下,好像已經很清楚了。

但真的往下拆之後,我才發現,「適合練習」至少就可能有兩種意思。

一種是比較小、方便拆解和模仿的 learning chunk;另一種則是比較接近自然說話節奏的 thought group。

也就是說,同一句需求,可以做出兩種完全不同、卻都不能說是錯的結果。

這也讓我開始重新看前面列出來的其他功能。

如果連「自動切段」這四個字底下都藏了這麼多產品決策,那我真的可以直接拿著一張 feature list 開始寫程式嗎?

Feature list 還不是 Product Spec

我以前做 side project 時其實寫過 spec,工作上也曾經自己開過 API spec,所以這件事對我並不完全陌生。

不過過去更多時候,我接到的是別人已經整理好的需求,再往下做模型或實作。

這次比較不一樣。

我要自己從「我想做一個什麼產品」一路走到「這東西到底要怎麼運作」。

一開始,我手上的東西比較像這樣:

  • 貼入自己的英文
  • 自動切段
  • 播放參考語音
  • Shadowing
  • 錄音
  • 回放
  • 最後完整演練

每一項看起來都很合理。

但它們其實只回答了:

這個產品要有哪些功能?

還沒有回答:

使用者實際會怎麼使用?每一步到底會發生什麼?

這兩件事差很多。

這讓我想到以前寫 API spec 的經驗

以前做模型 API 時,我遇過一個很實際的問題。

有一次,一個 request 需要回傳不只一組預測結果,而且每組結果又和其他條件有關。

這時候光說:

API 要回傳多組 prediction。

其實完全不夠。

真正開始設計時,很快就會冒出問題:

  • response 是 list 還是 dict?
  • 共用的條件放在外層就好嗎?
  • 還是每一筆 prediction 都要再重複一份?
  • 使用 API 的人最後要怎麼 parse?

如果這些沒有先講清楚,開發 API 的人可能覺得自己的設計很合理,串接的人卻會一頭霧水。

而 Product Spec 做的事情其實有點像把這個概念放大到整個產品。

「要回傳什麼」是需求;「對方最後實際會拿到什麼」才是 contract。

同樣地:

Support Shadowing.

是一個需求。

但:

使用者先聽參考語音,再跟讀,可以錄下自己的版本、回放,不熟就再練一次。

才開始接近產品真的會怎麼運作。

第一層:先把這一版的邊界寫清楚

Day 3 已經做了一次 scope 收斂。

完整產品未來可能包含:

  • AI 幫忙整理內容
  • 修改英文
  • 個人化表達
  • Shadowing
  • 口說回饋
  • 長期學習紀錄

但第一版先不全部做。

這一版先假設:

使用者已經有一段自己想練的英文。

接下來只處理:

貼入內容 → 分段 → 聽 → 跟讀 → 錄音 → 回放 → 完整演練

而像 AI 改寫、ASR、發音評分、AI feedback、個人化,都先放在後面。

Spec 不只是寫「我要做什麼」,也要正式寫下「這一版不做什麼」。

否則一個看起來很合理的小功能,很容易又默默長回 scope 裡。

第二層:把功能清單變成使用流程

原本我有:

Chunking、TTS、Recording、Playback。

這些都只是 capabilities。

真的從使用者角度走一次,才會變成:

貼入英文
→ 自動切段
→ 確認分段
→ 逐段練習
→ 完整演練

這時候我才比較能想像:

使用者進來第一眼看到什麼?

按下 Start Practice 之後發生什麼?

Chunk 切完之後,是直接播放,還是先讓他確認?

一小段一小段練完之後,又要去哪裡?

這些問題不是在增加新功能。

它們只是在把原本散落的功能,串成一件使用者真的能完成的事情。

功能清單告訴我產品有什麼;使用流程才告訴我使用者怎麼完成一件事。

第三層:每一步到底怎麼運作?

再往下一層,還有一個問題。

假設 spec 上只寫:

支援 Shadowing。

還是太模糊。

因為「支援 Shadowing」可以有很多做法。

我最後把一次基本練習拆成:

聽參考語音 → 跟讀 → 錄音 → 回放 → 覺得不熟就再一次

這時候才比較知道介面至少需要什麼:

  • 播放
  • 重播
  • 調整速度
  • 開始錄音
  • 停止錄音
  • 回放自己的聲音

Day 4 的 chunking 其實也是一樣。

自動切段

只是 feature。

什麼叫切得好?

才是在定義 behavior。

從需求到可以開發,中間還有幾層

整理完之後,大概是長的像下面這樣的流程:

https://ithelp.ithome.com.tw/upload/images/20260919/20184346JcbCgYmy3q.png

我以前看到 Product Spec,我對它的基本認知是「把需求寫詳細一點」。

但這次自己真的從零往下拆之後,我覺得它比較像是在「消除不同人腦中的版本差異」。

如果同一句 requirement 可以合理地做成兩個完全不同的產品,那它可能還沒有寫清楚。

不過,寫到這裡又會出現下一個問題。

如果每一個細節都可以繼續往下拆,那 Product Spec 到底要寫到多細?

是不是所有情況都要在開始寫程式前想完?

這就是我下一步要處理的問題。


上一篇
Day 4|從 Requirement 到 Spec:同一句英文,怎麼切才適合練習?
系列文
別再只是讓 AI 幫你改英文:30 天打造個人化 AI 英文溝通教練5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言